In today's mobile society, computer users often find themselves forced to use a computer that does not belong to them. For example, a business person might travel to another city or country to meet with a client. Even if the business person has a laptop computer, he or she may not wish to go through the hassle of bringing it through airline security due to the time constraints associated with doing so. Also, because notebook computers are easily stolen, the business traveler may wish to not risk losing important data by bringing the notebook computer along. As a result, upon arriving at the destination, the business traveler may be forced to use a public computer or a computer owned and operated by the client. A problem associated with using someone else's computer system in this manner is that the computer system will not have the user's files and/or settings stored on it. Thus, the business traveler must find some way to access his files and/or settings from the other computer.
Many computer users own (or have regular access to) two computers—a desktop computer that serves as a primary computer and a mobile computer used for traveling. One of the difficulties associated with maintaining two different computers is keeping files current on both systems. For example, if the user updates a file on his primary desktop computer, and later wishes to update that file while traveling, he must first transfer a copy of the file from the desktop computer to the mobile computer in order to ensure that he is working with the most recent version of the file. Once the user has modified the file on the mobile computer, in order later to use the file on the primary desktop computer, he must transfer a copy of the file back to that computer. Failing to make this transfer may result in changes being lost. Current computer systems do not allow users to easily transport their files and settings between multiple computers.
Various file synchronization techniques have been proposed and implemented to alleviate these and other problems associated with keeping data current between multiple computer systems.
One technique that is used to help a user organize and keep files up-to-date between personal computers is called a briefcase. A briefcase is used to “carry” files away from a first computer and bring them on a “trip” to a second computer. In one implementation of a briefcase, a user creates a briefcase folder and drags (i.e. copies) files into it from the first computer. The files can come from either a local hard drive or a network share. The briefcase keeps track of the location from where the original file was copied. The briefcase can be used with a single mobile computer in a networked environment to keep files updated on the network, or in a multiple computer setup to keep files synchronized between different personal computers.
In the single mobile computer networked environment, a mobile computer is connected to a local area network. User files are stored on the network and generally accessed from the network. When a user wishes to travel with the mobile computer, he may drag the files into the briefcase in order to have access to them when disconnected from the local area network. The user then accesses the files from the briefcase in order to work on them and saves any changes made to the files into the briefcase. When the user returns and reconnects to the local area network, the user selects the “update” function in the briefcase, and any modified files in the briefcase that have not been updated on the network are copied to the network.
In the multi-computer environment, a briefcase is created on removable storage media (e.g. a floppy disk). The removable storage media (RSM) is connected to a first computer, where a user can create a briefcase on the RSM and drag files located on the first computer into the briefcase located on the RSM. The user can then later place the RSM into a second computer, where the files in the briefcase may be accessed and modified. Upon returning the RSM to the first computer, the user can call an “update” function to bring the modified files up-to-date on the first computer.
Briefcases suffer from certain deficiencies. First, briefcases must be created and populated by the user. There is no function that automatically creates a briefcase on an RSM when it is connected to a computer. Second, the synchronization process using the briefcase must be initiated by the user. As a result, the user must remember to update the files, or they will not be automatically kept in sync. Finally, a briefcase is not equipped to store user environment settings such as desktop wallpaper and start menu configuration.
A second technique that has been used to synchronize files is known as folder redirection. Folder redirection involves storing the contents of a pre-designated file folder (e.g. a “My Documents” folder) associated with a user account onto a network share. The pre-designated file folder is then accessible from any computer on the network provided that the user is logged into his account. In order to get a seamless offline experience, client side caching (CSC) can be enabled on the local computer. CSC involves the use of a local file cache on the user's computer that allows a user to continue to access content from the network folder even when the computer is not connected to the network. For example, if the “My Documents” folder is redirected to a network share and is cached locally using CSC, when the network goes down, the user can continue to use the files in “My Documents” because the local cache is kept up-to-date by a synchronization process built into the CSC.
Folder redirection with client side caching has certain disadvantages associated with it. First, a network must be present in order for folder redirection to be implemented. Second, folder redirection must be enabled by a network administrator. Thus, users with little or no technical experience will not be able to implement this solution on their own. Third, although files can be accessed from various computers connected to the network, user environment settings such as desktop wallpaper and start menu configuration do not travel between machines.
A third technique that has been utilized for file synchronization purposes is roaming user profiles. A roaming user profile (RUP) is a set of information about a user stored on a network location. This set of information generally includes user files (e.g., documents, spreadsheets, presentations, etc.), application settings, and start menu settings. When a user logs into a network workstation, the RUP is copied onto the local system so it is available from that particular computer.
One problem with using RUPs is that the user must be logged onto a local area network in order for the RUP to be copied to the user's computer. Thus, it is difficult to implement this solution over a wide area. Second, setting up RUPs requires a certain level of expertise that is usually held by only system administrators and other information technology (IT) professionals. Finally, because RUPs can become very large, the process of logging in and out of the network can result in slowdowns due to the large amounts of data being copied over the network.
Although the above-described techniques attempt to provide an effective way to synchronize a user's files and settings among multiple computers, it is desirable to provide an improved and/or alternative way for providing a user with a consistent experience across a number of different computing devices.